package com.yxx.entityModel.vo.response;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.List;

/**
 * 菜单下拉树Response
 * @author yuxiangxun
 * @date 2025/2/3
 * @apiNote
 */
@Data
@ApiModel(description = "菜单下拉树Response")
public class MenuTreeResponse {
    /**
     * 菜单id
     */
    @ApiModelProperty(value = "菜单id")
    private Integer id;

    /**
     * 父菜单id
     */
    //在序列化和反序列化过程中 忽略该字段,标记某个字段，使其在 JSON 转换时被排除在外
    @JsonIgnore
    @ApiModelProperty(value = "父菜单id")
    private Integer parentId;

    /**
     * 菜单名称
     */
    @ApiModelProperty(value = "菜单名称")
    private String label;

    //用于控制在序列化 Java 对象为 JSON 时，仅包含非空字段。它的作用是过滤掉值为“空”的字段，使得生成的 JSON 数据更简洁，避免传输冗余信息。
    /**
     * 子菜单树
     */
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    @ApiModelProperty(value = "子菜单树")
    private List<MenuTreeResponse> children;
}
